﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.Sql;
using System.Configuration;
using UricaoWeb.LogicaDeNegocios.Propiedad;
using UricaoWeb.LogicaDeNegocios.Seguridad_y_Roles;
using System.Data;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;

namespace UricaoWeb.Presentacion
{
    public partial class API_propiedades_ModificarHotel : API_Seguridad_Principal
    {
        public LogicaPropiedades _hotel = new LogicaPropiedades();

        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();

			Logica_Usuario _seguridad = (Logica_Usuario)Session["user"];

			Session["idHotel"] = LogicaPropiedades._idHotel;

            if (TBnombreHotel.Text=="")
            CargarDatos((string)Session["_nombreHotel"]);

            
        }

        protected void CargarDatos(string _nombreHotel)
        {
            DataSet _datosHotel = new DataSet();//creamos el dataset para que cargue los datos del hotel
            LogicaPropiedades _hotel = new LogicaPropiedades();//instanciamos un ojeto de tipo LogicaPropiedades para acceder a sus metodos
            _datosHotel = _hotel.MostrarDatosHotel(_nombreHotel, _datosHotel);//llamamos a la funcion que devuelve los datos del hotel y los descarga en dataset
            //ASIGANAMOS LOS VALORES DEL HOTEL A LOS RESPECTIVOS CAMPOS
            TBnombreHotel.Text = _datosHotel.Tables[0].Rows[0][0].ToString();
            TBdescripcionHotel.Text = _datosHotel.Tables[0].Rows[0][1].ToString();
            TBtelefonoHotel.Text = _datosHotel.Tables[0].Rows[0][2].ToString();
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "1")
                CB1Estrella.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "2")
                CB2Estrellas.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "3")
                CB3Estrellas.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "4")
                CB4Estrellas.Checked = true;
            if (_datosHotel.Tables[0].Rows[0][3].ToString() == "5")
                CB5Estrellas.Checked = true;
            TBdireccion.Text = _datosHotel.Tables[0].Rows[0][4].ToString();
            IFotoHotel.ImageUrl = _datosHotel.Tables[0].Rows[0][5].ToString();
            
            
        }

        protected void Baceptar_Click(object sender, EventArgs e)
        {
            
            string _categoria = "";
                if (CB1Estrella.Checked)
                    _categoria = "1";
                if (CB2Estrellas.Checked)
                    _categoria = "2";
                if (CB3Estrellas.Checked)
                    _categoria = "3";
                if (CB4Estrellas.Checked)
                    _categoria = "4";
                if (CB5Estrellas.Checked)
                    _categoria = "5";
            bool _validacionDeDatos = _hotel.ValidarEnvioTodosLosDatos(TBnombreHotel.Text, TBtelefonoHotel.Text, IFotoHotel.ImageUrl, TBdireccion.Text, _categoria, TBdescripcionHotel.Text, "LLENO");
            string _hotelExiste = _hotel.ValidaExitenciaHotel(TBnombreHotel.Text);

            if (TBnombreHotel.Text == (string)Session["_nombreHotel"] || _hotelExiste == "0")
            {
                int _estrellas = ValidaCategorias();
                if (_validacionDeDatos && _estrellas == 1)
                {
                    _hotel.ModificarHotel((string)Session["_nombreHotel"], TBnombreHotel.Text, TBdescripcionHotel.Text, TBtelefonoHotel.Text, _categoria.ToString(), TBdireccion.Text, IFotoHotel.ImageUrl.ToString());
                    string _siguienteVentana = "~/Presentacion/API_propiedades_GestionHotel.aspx";
                    string _alerta = "alert('Su registro ha sido Modificado')";
                    var _clientScript = Page.ClientScript;
                    _clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", _alerta, true);
                    Server.Transfer(_siguienteVentana);
                }
                else
                {
                    string _alerta = "alert('Su registro no se pudo modificar porque hay campos vacios o porque tiene mas de una categoria de estrellas seleccionada')";
                    var _clientScript = Page.ClientScript;
                    _clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", _alerta, true);
                }
            }
            if (_hotelExiste!="0" && TBnombreHotel.Text != (string)Session["_nombreHotel"])
            {
                string _alerta = "alert('Su registro no se pudo modificar porque el nombre ya esta registrado')";
                var _clientScript = Page.ClientScript;
                _clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", _alerta, true);
            }
           
            }

        protected int ValidaCategorias()
        { 
            int _suma = 0;
                if (CB1Estrella.Checked)
                    _suma++;
                if (CB2Estrellas.Checked)
                    _suma++;
                if (CB3Estrellas.Checked)
                    _suma++;
                if (CB4Estrellas.Checked)
                    _suma++;
                if (CB5Estrellas.Checked)
                    _suma++;          
            return _suma;
        }
    
    }

    }
